package com.dc.system.mapper;

import com.dc.system.dto.SysMenuDTO;
import com.dc.system.model.SysRole;
import com.dc.system.model.SysRolePermission;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

@Mapper
@Component
public interface RoleMapper {
    //插入角色
    int insertRole(SysRole sysRole);
    //获取总系统的菜单
    List<SysMenuDTO> getFirstMenu();
    //获取子系统的菜单
    List<SysMenuDTO> getSecondMenu();
    //插入角色的权限
    int insertRolePermission(List<SysRolePermission> permissionList);
    //根据用户id查询用户的总系统角色权限
    List<SysRolePermission> getUserRolePermission(int userId);
    //根据用户id查询用户的子系统角色权限
    List<SysRolePermission> getUserSubRolePermission(int userId);
    //根据总系统的菜单code值获取到子系统的菜单
    List<SysMenuDTO> getSecondMenuByCode(String code);
    //查询角色id和名字下拉列表
    List<SysRole> getRoleIdAndNames();
    //列表/高级查询角色
    List<SysRole> getRoles(Map map);
    //根据用户id和模块code值获取到对应的权限值
    SysRolePermission getRolePermissionByUserIdAndCode(Map map);

    SysRole getRoleById(int roleId);

    int updateRole(SysRole role);

    void delPermissionByRoleId(int roleId);

    List<SysRolePermission> getPermissionByRoleId(SysRole sysRole);
}
